package com.example.demo.controller;

import com.example.demo.entity.Student;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.PostConstruct;

@Controller
@ResponseBody // 加在类上，表示当前类中的所有方法返回的都是非静态页面的数据
//@RequestMapping("/test") // 一级路由
public class TestController {

    // 1.得到日志对象 --- 日志在类中，可以在方法中直接调用
    // getLogger() 里边写哪一个类的.class 就打印哪一个类的日志
    private static final Logger log = LoggerFactory.getLogger(TestController.class);


//    @Value("${my.id}") // 注意一定是 ${key} 格式
//    private int myconfig;

   /* @Value("${mystr1}")
    private String mystr1;

    @Value("${mystr2}")
    private String mystr2;

    @Value("${mystr3}")
    private String mystr3;

    @Value("${student.name}")
    private String name;

    @Autowired  // 注入对象，让 spring 完成 bean 自动装配的工作。也就是 取对象
    private Student student;

    @PostConstruct
    // 加上该注解表示在项目启动的时候执行该方法，也可以理解为在 spring 容器初始化的时候执行该方法。
    public void doPostConstruct() {
        System.out.println("------------------------------------");
        System.out.println(mystr1);
        System.out.println(mystr2);
        System.out.println(mystr3);
        System.out.println("------------------------------------");

        System.out.println("name -> " + name);

        System.out.println(student);
    }*/

    // 相当于 @WebServlet("/url") 二级路由 localhost:8080/test/sayhi
    @RequestMapping("/sayhi")
    public String sayHi() {
        // 打印日志
        log.trace("i'm trace");
        log.debug("i'm debug");
        log.info("i'm info");
        log.warn("i'm warn");
        log.error("i'm error");
        return "hello world ";
    }
}
